//
// Description: 482. 密钥格式化
// Created by Loading on 2021/10/4.
//

#include <bits/stdc++.h>

using namespace std;

string licenseKeyFormatting(string S, int K) {
    string result;
    int index = 0;
    /* string 要使用 push_back，使用 "+" 会造成超时 */
    // 反向遍历
    for (int i = (int) S.size() - 1; i >= 0; --i) {
        if (S[i] != '-') {
            // 转大写
            S[i] = toupper(S[i]);
            // 每隔 K 个字符，添加破折号
            if (index != 0 && index % K == 0) {
                result.push_back('-');
            }
            result.push_back(S[i]);
            index++;
        }
    }
    // 反转字符串
    reverse(result.begin(), result.end());

    return result;
}

int main() {
    string s = "5F3Z-2e-9-w";
    int K = 4;
    string res = licenseKeyFormatting(s, K);
    cout << res << endl;

    return 0;
}